The present invention relates to the field of computer storage systems, and particularly to advanced function storage systems providing a point-in-time copy function.
In the field of computer storage systems, there is increasing demand for what have come to be described as “advanced functions”. Such functions go beyond the simple Input/Output (I/O) functions of conventional storage controller systems. Advanced functions depend on the control of metadata used to retain state data about user data stored in the system. The manipulations available using advanced functions enable various actions to be applied quickly to virtual images of data, while leaving the user data available for use by user applications. One such advanced function is point-in-time copy.
Point-in-time copy is a feature supported on various storage devices that allows nearly instantaneous point-in-time copies of entire logical volumes or data sets to be made. The point-in-time function enables one to make full volume copies of data, with the copies immediately available for read or write access. The copy may be used with standard backup tools that are available in a computing environment to create backup copies on tape.
“Snapshot” provides the ability to record the state of a storage device at any given moment and preserve that snapshot as a guide for restoring the storage device in the event that it fails. A snapshot primarily creates a point-in-time copy of the data. Typically, a snapshot copy function is done instantly and made available for use by other applications such as data protection, data analysis and reporting, and data replication applications. The original copy of the data continues to be available to the applications without interruption, while the snapshot copy is used to perform other functions on the data. A snapshot is a point-in-time copy that is dependent on the primary disk. A snapshot may, for example, be accomplished using a copy-on-write procedure, in which currently existing data in a region on the primary disk is written to the backup disk when a write is being made to the region on the primary disk. Thus, the backup disk will contain data that has been overwritten on the primary disk, as opposed to a complete copy of the primary disk. This type of backup copy typically results in a thinly provisioned volume, which reduces storage. A series of snapshot copies may be cascaded together to represent the primary disk at various times. However, the snapshot copies typically remain dependent on the primary disk to reassemble a complete copy of the primary disk. Therefore, a snapshot is a point-in-time copy where the target only holds the changed data necessary to present the point-in-time copy of the source. Data is only copied to the target disk if it is changed on the source. The target disk is generally always dependent on some of the data on the source disk in order to present the point-in-time copy.
In contrast, a “clone” is a point-in-time copy that is independent of the primary disk. A clone may, for instance, be created by executing a background copy procedure in which a disk's regions are sequentially copied to the backup disk and executing a copy-on-write procedure to immediately copy any primary disk regions that are about to be overwritten due to a write and have not yet been processed by the background copy procedure. A clone is typically used when a copy is needed and input/output (I/O) to the copy must not impact I/O to the primary volume in any way. A clone may also be used when the copy is not to be affected by availability to the source. A clone may also be used in a cascade.
Therefore, a clone is a point-in-time copy where the target disk will hold a complete copy of the data that was on the source disk when the point-in-time copy was started. When the copying of the data from source to target completes, the target disk is independent of the source.
An increasingly common use case is that of golden image. This is where an image is created, the golden image, that is to be the source for all production images. For example, a standardized test or development environment that contains all the data required by the users and may be used by many users independently. The administrator creates the required number of production images and assigns them to the users. In order to save space the images created are thinly provisioned.